40 research outputs found

    A Quantitative Study of Pure Parallel Processes

    Full text link
    In this paper, we study the interleaving -- or pure merge -- operator that most often characterizes parallelism in concurrency theory. This operator is a principal cause of the so-called combinatorial explosion that makes very hard - at least from the point of view of computational complexity - the analysis of process behaviours e.g. by model-checking. The originality of our approach is to study this combinatorial explosion phenomenon on average, relying on advanced analytic combinatorics techniques. We study various measures that contribute to a better understanding of the process behaviours represented as plane rooted trees: the number of runs (corresponding to the width of the trees), the expected total size of the trees as well as their overall shape. Two practical outcomes of our quantitative study are also presented: (1) a linear-time algorithm to compute the probability of a concurrent run prefix, and (2) an efficient algorithm for uniform random sampling of concurrent runs. These provide interesting responses to the combinatorial explosion problem

    Quantitative and Algorithmic aspects of Barrier Synchronization in Concurrency

    Get PDF
    In this paper we address the problem of understanding Concurrency Theory from a combinatorial point of view. We are interested in quantitative results and algorithmic tools to refine our understanding of the classical combinatorial explosion phenomenon arising in concurrency. This paper is essentially focusing on the the notion of synchronization from the point of view of combinatorics. As a first step, we address the quantitative problem of counting the number of executions of simple processes interacting with synchronization barriers. We elaborate a systematic decomposition of processes that produces a symbolic integral formula to solve the problem. Based on this procedure, we develop a generic algorithm to generate process executions uniformly at random. For some interesting sub-classes of processes we propose very efficient counting and random sampling algorithms. All these algorithms have one important characteristic in common: they work on the control graph of processes and thus do not require the explicit construction of the state-space

    A Decidable Characterization of a Graphical Pi-calculus with Iterators

    Full text link
    This paper presents the Pi-graphs, a visual paradigm for the modelling and verification of mobile systems. The language is a graphical variant of the Pi-calculus with iterators to express non-terminating behaviors. The operational semantics of Pi-graphs use ground notions of labelled transition and bisimulation, which means standard verification techniques can be applied. We show that bisimilarity is decidable for the proposed semantics, a result obtained thanks to an original notion of causal clock as well as the automatic garbage collection of unused names.Comment: In Proceedings INFINITY 2010, arXiv:1010.611

    On Linear Time and Congruence in Channel-passing Calculi

    No full text
    International audienceProcess algebras such as CSP or the Pi-calculus are theories to reason about concurrent software. The Pi-calculus also introduces channel passing to address specific issues in mobility. Despite their similarity, the languages expose salient divergences at the formal level. CSP is built upon trace semantics while labeled transition systems and bisimulation are the privileged tools to discuss the Pi-calculus semantics. In this paper, we try to bring closer both approaches at the theoretical level by showing that proper trace semantics can be built upon the Pi-calculus. Moreover, by introducing locations, we obtain the same discriminative power for both the trace and bisimulation equivalences, in the particular case of early semantics. In a second part, we propose to develop the semantics of a slightly modified language directly in terms of traces. This language retains the full expressive power of the Pi-calculus and most notably supports channel passing. Interestingly, the resulting equivalence, obtained from late semantics, exhibits a nice congruence property over process expressions

    Principes et pratiques de la programmation en pi-calcul

    No full text
    National audienceNous étudions la problématique du mélange de paradigmes de programmation variés plongés dans un environnement concurrent. Dans cette perspective, nous poursuivons un cheminement similaire à celui qui conduit du λ-calcul aux langages fonctionnels, mais en prenant comme point de départ le π-calcul. Nous proposons la machine abstraite des π-threads dont la principale originalité est l’absence de pile d’exécution. Cette caractéristique permet de nous reposer dans nos implémentations sur des algorithmes simples et naturellement concurrents, notamment pour ce qui concerne l’ordonnancement et le ramasse-miettes. Pour ce dernier, nous proposons un algorithme permettant de récupérer très simplement les cycles de processus en interblocage et autres structures bloquantes

    A Stackless Runtime Environment for a Pi-calculus

    No full text
    International audienceThe Pi-calculus is a formalism to model and reason about highly concurrent and dynamic systems. Most of the expressive power of the language comes from the ability to pass communication channels among concurrent processes, as any other value. We present in this paper the CubeVM, an interpreter architecture for an applied variant of the Pi-calculus, focusing on its operational semantics. The main characteristic of the CubeVM comes from its stackless architecture. We show, in a formal way, that the resource management model inside the VM may be greatly simplified without the need for nested stack frames. This is particularly true for the garbage collection of processes and channels. The proposed GC, based on a reference counting scheme, is highly concurrent and, most interestingly, does automatically detect and reclaim cycles of disabled processes. We also address the main performance issues raised by the fine-grained concurrency model of the Pi-calculus. We introduce the reactive variant of the semantics that allows, when applicable, to increase the performance drastically by bypassing the scheduler. We define the language subset of processes in so called chain-reaction forms for which the sequential semantics can be proved statically. We illustrate the expressive power and performance gains of such chain-reactions with examples of functional, dataflow and object-oriented systems. Encodings for the pure Pi-calculus are also demonstrated

    Automated generation of test cases from contract-oriented specifications: A CSP-based approach

    No full text
    International audienceIn this paper, we discuss the automated generation of test cases from contract-oriented specifications. The static analysis we develop rely on original constraint minimization and satisfaction techniques (CSP). We propose a flexible CSP architecture that can apply not only on integer or bounded domains but also on arbitrary types. The original notion of type builders is used to establish the connection between the type semantics and the CSP framework. We illustrate this aspect by developing a string builder that can automatically generate string instances depending on combinations of constraints based on string sizes and substrings. The scope of these techniques goes beyond the generation of test cases. They are used in other static analyzes, most notably a symbolic animation of contracts that can detect inconsistencies early in the development cycle
    corecore